J2ObjC(Java to Objective-C)是Google 的开源命令行工具,可以将 Java 代码转成适用于iOS(iPhone/iPad)平台上的 Objective-C 代码。J2ObjC可以使Java 代码成为iOS 应用构建的一部分,且无需对生成的文件进行编辑。2ObjC并不是Java模拟器,而是将Java语言转换成Objective-C语言,并直接使用iOS基础框架。
J2ObjC为满足客户端应用程序开发者的要求,完全支持Java6和大部分的运行特性。包括异常处理、内部类型、匿名类型,泛型类型、线程和映像。同时支持JUnit测试翻译和执行,而且J2ObjC能用于大多数工具中,包括Xcode和Make。
进入J2ObjC项目页面就能了解使用说明、查询源代码、浏览知识库,网站上还有详细的设计文档,方便感兴趣的人学习代码的转换过程。
J2objc的使用:
1、要求:
Xcode 4 or higher
Java for OS X (JDK1.6)
Apache Maven (可有可无,根据使用j2objc的方式)
2、使用方式及步骤:
(1)使用方式
在xcode中使用j2objc有两种方式:第一种是在外部构建工程作为一个独立的生成文件。第二种是为xcode工程类型添加规则。外部构建工程的的优点是仍然可以使用现有的java工具,如IDE支持错误的检查的重构。建立规则的优点是java源作为xcode工程中的一部分,且java源很快可以在调试时使用。
(2)使用步骤
以xcode工程添加规则的使用方式为例:
先下载安装Xcode工具以及 javaforOSX;下载解压 j2objc 0.5.3;在Xcode中配置规则如下:
(1) 在Xcode工程编辑器,选择工程,点击Build Rules选项卡。
(2) 在面板右下角单击Add Build Rules按钮。
(3) 在新规则的Process选项中,选择"Java source files".
(4) 在自定义脚本文本框中,添加如下代码:
$distribution-path/j2objc -d ${DERIVED_FILES_DIR} -sourcepath ${PROJECT_DIR}/$source-root \
--no-package-directories ${INPUT_FILE_PATH};
将$distribution-path改为下载解压的j2objc 0.5.3的路径。将$source-root改为工程名。
(5) 在Output Files 面板中单击+按钮,并添加"${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.h"
(6) 再次单击+按钮,并添加 "${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.m"
(7)点击Build Setting选项卡。
(8) 在Header Search Paths 中添加 " $distribution-path /include", 接着添加 "${DERIVED_FILES_DIR}".将$distribution-path改为下载解压的j2objc 0.5.3的路径。
(9) 在 Library Search Paths, 添加 " $distribution-path /lib".将$distribution-path改为下载解压的j2objc 0.5.3的路径。
(10) 在 Other Linker Flags, 添加 "-l jre_emul -ObjC" (J2ObjC's JRE emulation library).
(11) 在工程中添加java源文件。